#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

typedef void* ElementType;
typedef struct QNode* PtrToQNode;

struct QNode {
	ElementType* Data;
	int Front, Rear;
	int MaxSize;
};

typedef PtrToQNode Queue;

Queue create(int MaxSize);

bool isEmptyQueue(Queue queue);

bool isFullQueue(Queue queue);

void printQueue(Queue queue);

bool enqueue(Queue queue, ElementType value);

ElementType dequeue(Queue queue);

ElementType getFrontToElement(Queue queue);
